<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // 栈
  function stack() {
    // 创建数组
    this.items = []
    // 为原型添加方法
    // 添加
    stack.prototype.push = (element) => {
      this.items.push(element)
    }
    // 移除
    stack.prototype.pop = () => {
      return this.items.pop()
    }
  }
  // 队列
  function queue() {
    this.items = []
    // 添加
    queue.prototype.addueue = (element) => {
      this.items.push(element)
    }
    // 移除
    queue.prototype.remueue = () => {
      return this.items.shift()
    }
  }
  // 使用
  // 栈
  let s = new stack()
  // 添加
  s.push(111)
  s.push(222)
  s.push(333)
  console.log(s);
  // 移除
  s.pop()
  console.log(s);
  // 后进先出：后添加进来的移除的时候先移除
  // 队
  let q = new queue()
  // 添加
  q.addueue(111)
  q.addueue(222)
  q.addueue(333)
  console.log(q);
  // 移除
  q.remueue()
  console.log(q);
  // 先进先出：先添加进来的移除的时候先移除
</script>

</html>